一维数组
新建数组
新建数组(不分配内存)的两种方式
新建数组且分配内存的两种方式
新建数组且初始化的三种方式
int[] a = {1, 2, 3};
int a[] = {1, 2, 3};
int[] a = new int[] {1, 2, 3};
// 注意,不能先 new 再初始化
// int[] a = new int[3];
// a = {1, 2, 3}; 是错误的写法
数组越界
Java 数组越界,会被 JVM 抛出异常 ArrayIndexOutOfBoundsException
Java 的 for-each
循环
对于数组 a
,可以这样遍历,类似 C++11
数组的 copy
Java 中,数组名字其实是一个指针,指向数组对应的内存区域
所以如果对于数组 a 和 b 执行赋值操作,实际上相当于把 b 的地址赋给 a
对于已经存在的 a b 两个数组,Java 中提供了 System.arraycopy()
可以用来方便地进行数组的 copy 操作
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
,如
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = {6, 7, 8, 9, 0};
System.arraycopy(arr1, 0, arr2, 0, arr1.length);
// 执行完毕后,arr2 也是 {1, 2, 3, 4, 5}
若已经存在 a 但不存在 b,希望用 a 的内容对 b 进行初始化,可以使用 Array.copyOf(src, len)
完成,如
若想要使用 a 的全部内容初始化 b,可以直接使用 a.clone()
,如
java.util.Arrays
当中的实用方法
Arrays.toString(arrName)
Arrays.sort(arrName)
Arrays.fill(name, val)
Arrays.equals(arr1, arr2)
Arrays.binarySearch(arrName, val)